package com.realjinge.message;

import com.realjinge.tools.TimeTool;

/** Xml协议响应 */
public class MsgXmlResp {

	/** 文本消息响应格式 */
	public static final String TEXT = new StringBuilder().append("<xml>")
			.append("<ToUserName><![CDATA[%s]]></ToUserName>").append("<FromUserName><![CDATA[%s]]></FromUserName>")
			.append("<CreateTime>%s</CreateTime>").append("<MsgType><![CDATA[%s]]></MsgType>")
			.append("<Content><![CDATA[%s]]></Content>").append("</xml>").toString();

	/** 
	 * 构造文本消息响应
	 * @param toUserName
	 * @param fromUserName
	 * @param content
	 * @return
	 */
	public static final String buildText(String toUserName, String fromUserName, String content) {
		return String.format(TEXT, toUserName, fromUserName, TimeTool.timeStamp(), MsgType.TEXT, content);
	}

	/** item响应格式 */
	public static final String ITEM = new StringBuffer().append("<item>").append("<Title><![CDATA[%s]]></Title>")
			.append("<Description><![CDATA[%s]]></Description>").append("<PicUrl><![CDATA[%s]]></PicUrl>")
			.append("<Url><![CDATA[%s]]></Url>").append("</item>").toString();

	/** 
	 * 构造item格式响应
	 * @param title
	 * @param description
	 * @param picUrl
	 * @param url
	 * @return
	 */
	public static final String buildItem(String title, String description, String picUrl, String url) {
		return String.format(ITEM, title, description, picUrl, url);
	}

	/** 图文消息响应格式 */
	public static final String NEWS = new StringBuffer().append("<xml>")
			.append("<ToUserName><![CDATA[%s]]></ToUserName>").append("<FromUserName><![CDATA[%s]]></FromUserName>")
			.append("<CreateTime>%s</CreateTime>").append("<MsgType><![CDATA[%s]]></MsgType>")
			.append("<ArticleCount>%s</ArticleCount>").append("<Articles>%s</Articles>").append("</xml>").toString();

	/** 
	 * 构造图文消息响应 
	 * @param toUserName
	 * @param fromUserName
	 * @param count
	 * @param item
	 * @return
	 */
	public static final String buildNews(String toUserName, String fromUserName, String count, String item) {
		return String.format(NEWS, toUserName, fromUserName, TimeTool.timeStamp(), MsgType.NEWS, count, item);
	}

	/** 设备消息响应格式 */
	public static final String DEVICE_TEXT = new StringBuilder().append("<xml>")
			.append("<ToUserName><![CDATA[%s]]></ToUserName>").append("<FromUserName><![CDATA[%s]]></FromUserName>")
			.append("<CreateTime>%s</CreateTime>").append("<MsgType><![CDATA[%s]]></MsgType>")
			.append("<DeviceType><![CDATA[%s]]></DeviceType>").append("<DeviceID><![CDATA[%s]]></DeviceID>")
			.append("<SessionID>%s</SessionID>").append("<Content><![CDATA[%s]]></Content>").append("</xml>")
			.toString();

	/** 
	 * 构造设备消息响应
	 * @param fromUserName
	 * @param toUserName
	 * @param deviceType
	 * @param deviceID
	 * @param content
	 * @param sessionID
	 * @return
	 */
	public static final String buildDeviceText(String fromUserName, String toUserName, String deviceType,
			String deviceID, String content, String sessionID) {
		return String.format(DEVICE_TEXT, fromUserName, toUserName, TimeTool.timeStamp(), MsgType.DEVICE_TEXT,
				deviceType, deviceID, sessionID, content);
	}

	public static void main(String[] args) {
		System.out.println(buildText("", "", ""));
		System.out.println(buildDeviceText("", "", "", "", "", ""));
	}

}
